Page({
  data: {
    redirectUrl: '', // 登录后跳转的页面
    params: {} // 需要传递的参数
  },

  onLoad(options) {
    // 保存跳转信息
    this.setData({
      redirectUrl: decodeURIComponent(options.redirect || '/pages/index/index'),
      params: options
    })
  },

  async handleLogin() {
    try {
      // 获取用户信息
      const { userInfo } = await wx.getUserProfile({
        desc: '用于显示分组信息'
      })

      // 保存用户信息
      const app = getApp()
      app.globalData.userInfo = userInfo

      // 登录成功后跳转
      const params = Object.keys(this.data.params)
        .filter(key => key !== 'redirect')
        .map(key => `${key}=${this.data.params[key]}`)
        .join('&')

      wx.redirectTo({
        url: `${this.data.redirectUrl}${params ? '?' + params : ''}`
      })
    } catch (err) {
      console.error('登录失败', err)
      wx.showToast({
        title: '登录失败，请重试',
        icon: 'none'
      })
    }
  }
}) 